home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / share / console-setup / KeyboardNames.pl < prev   
Encoding:
Perl Script  |  2013-01-05  |  29.2 KB  |  827 lines

  1. #!/usr/bin/perl -w
  2.  
  3. package KeyboardNames;
  4.  
  5. %models = (
  6.     'A4Tech KB-21' => 'a4techKB21',
  7.     'A4Tech KBS-8' => 'a4techKBS8',
  8.     'A4Tech Wireless Desktop RFKB-23' => 'a4_rfkb23',
  9.     'Acer AirKey V' => 'airkey',
  10.     'Acer C300' => 'acer_c300',
  11.     'Acer Ferrari 4000' => 'acer_ferrari4k',
  12.     'Acer Laptop' => 'acer_laptop',
  13.     'Advance Scorpius KI' => 'scorpius',
  14.     'Amiga' => 'amiga',
  15.     'Apple' => 'apple',
  16.     'Apple Aluminium Keyboard (ANSI)' => 'applealu_ansi',
  17.     'Apple Aluminium Keyboard (ISO)' => 'applealu_iso',
  18.     'Apple Aluminium Keyboard (JIS)' => 'applealu_jis',
  19.     'Apple Laptop' => 'apple_laptop',
  20.     'Asus Laptop' => 'asus_laptop',
  21.     'Atari TT' => 'ataritt',
  22.     'Azona RF2300 wireless Internet Keyboard' => 'azonaRF2300',
  23.     'BTC 5090' => 'btc5090',
  24.     'BTC 5113RF Multimedia' => 'btc5113rf',
  25.     'BTC 5126T' => 'btc5126t',
  26.     'BTC 6301URF' => 'btc6301urf',
  27.     'BTC 9000' => 'btc9000',
  28.     'BTC 9000A' => 'btc9000a',
  29.     'BTC 9001AH' => 'btc9001ah',
  30.     'BTC 9019U' => 'btc9019u',
  31.     'BTC 9116U Mini Wireless Internet and Gaming' => 'btc9116u',
  32.     'BenQ X-Touch' => 'benqx',
  33.     'BenQ X-Touch 730' => 'benqx730',
  34.     'BenQ X-Touch 800' => 'benqx800',
  35.     'Brother Internet Keyboard' => 'brother',
  36.     'Cherry B.UNLIMITED' => 'cherrybunlim',
  37.     'Cherry Blue Line CyBo@rd' => 'cherryblue',
  38.     'Cherry Blue Line CyBo@rd (alternate option)' => 'cherrybluea',
  39.     'Cherry CyBo@rd USB-Hub' => 'cherrycyboard',
  40.     'Cherry CyMotion Expert' => 'cherrycmexpert',
  41.     'Cherry CyMotion Master Linux' => 'cymotionlinux',
  42.     'Cherry CyMotion Master XPress' => 'cherryblueb',
  43.     'Chicony Internet Keyboard' => 'chicony',
  44.     'Chicony KB-9885' => 'chicony9885',
  45.     'Chicony KU-0108' => 'chicony0108',
  46.     'Chicony KU-0420' => 'chicony0420',
  47.     'Classmate PC' => 'classmate',
  48.     'Compaq Easy Access Keyboard' => 'compaqeak8',
  49.     'Compaq Internet Keyboard (13 keys)' => 'compaqik13',
  50.     'Compaq Internet Keyboard (18 keys)' => 'compaqik18',
  51.     'Compaq Internet Keyboard (7 keys)' => 'compaqik7',
  52.     'Compaq iPaq Keyboard' => 'ipaq',
  53.     'Creative Desktop Wireless 7000' => 'creativedw7000',
  54.     'DTK2000' => 'dtk2000',
  55.     'Dell' => 'dell',
  56.     'Dell 101-key PC' => 'dell101',
  57.     'Dell Laptop/notebook Inspiron 6xxx/8xxx' => 'inspiron',
  58.     'Dell Laptop/notebook Precision M series' => 'precision_m',
  59.     'Dell Latitude series laptop' => 'latitude',
  60.     'Dell Precision M65' => 'dellm65',
  61.     'Dell SK-8125' => 'dellsk8125',
  62.     'Dell SK-8135' => 'dellsk8135',
  63.     'Dell USB Multimedia Keyboard' => 'dellusbmm',
  64.     'Dexxa Wireless Desktop Keyboard' => 'dexxa',
  65.     'Diamond 9801 / 9802 series' => 'diamond',
  66.     'Ennyah DKB-1008' => 'ennyah_dkb1008',
  67.     'Everex STEPnote' => 'everex',
  68.     'FL90' => 'compalfl90',
  69.     'Fujitsu-Siemens Computers AMILO laptop' => 'fscaa1667g',
  70.     'Generic 101-key PC' => 'pc101',
  71.     'Generic 102-key (Intl) PC' => 'pc102',
  72.     'Generic 104-key PC' => 'pc104',
  73.     'Generic 105-key (Intl) PC' => 'pc105',
  74.     'Genius Comfy KB-12e' => 'geniuscomfy',
  75.     'Genius Comfy KB-16M / Genius MM Keyboard KWD-910' => 'genius',
  76.     'Genius Comfy KB-21e-Scroll' => 'geniuscomfy2',
  77.     'Genius KB-19e NB' => 'geniuskb19e',
  78.     'Genius KKB-2050HS' => 'geniuskkb2050hs',
  79.     'Gyration' => 'gyration',
  80.     'HTC Dream' => 'htcdream',
  81.     'Happy Hacking Keyboard' => 'hhk',
  82.     'Happy Hacking Keyboard for Mac' => 'macintosh_hhk',
  83.     'Hewlett-Packard Internet Keyboard' => 'hpi6',
  84.     'Hewlett-Packard Mini 110 Notebook' => 'hpmini110',
  85.     'Hewlett-Packard Omnibook 500 FA' => 'hp500fa',
  86.     'Hewlett-Packard Omnibook 5xx' => 'hp5xx',
  87.     'Hewlett-Packard Omnibook 6000/6100' => 'hp6000',
  88.     'Hewlett-Packard Omnibook XE3 GC' => 'hpxe3gc',
  89.     'Hewlett-Packard Omnibook XE3 GF' => 'hpxe3gf',
  90.     'Hewlett-Packard Omnibook XT1000' => 'hpxt1000',
  91.     'Hewlett-Packard Pavilion ZT11xx' => 'hpzt11xx',
  92.     'Hewlett-Packard Pavilion dv5' => 'hpdv5',
  93.     'Hewlett-Packard SK-250x Multimedia Keyboard' => 'hp250x',
  94.     'Hewlett-Packard nx9020' => 'hpnx9020',
  95.     'Honeywell Euroboard' => 'honeywell_euroboard',
  96.     'Htc Dream phone' => 'htcdream',
  97.     'IBM Rapid Access' => 'rapidaccess',
  98.     'IBM Rapid Access II' => 'rapidaccess2',
  99.     'IBM Space Saver' => 'ibm_spacesaver',
  100.     'IBM ThinkPad 560Z/600/600E/A22E' => 'thinkpad',
  101.     'IBM ThinkPad R60/T60/R61/T61' => 'thinkpad60',
  102.     'IBM ThinkPad Z60m/Z60t/Z61m/Z61t' => 'thinkpadz60',
  103.     'Keytronic FlexPro' => 'flexpro',
  104.     'Kinesis' => 'kinesis',
  105.     'Laptop/notebook Compaq (eg. Armada) Laptop Keyboard' => 'armada',
  106.     'Laptop/notebook Compaq (eg. Presario) Internet Keyboard' => 'presario',
  107.     'Laptop/notebook eMachines m68xx' => 'emachines',
  108.     'Logitech Access Keyboard' => 'logiaccess',
  109.     'Logitech Cordless Desktop' => 'logicd',
  110.     'Logitech Cordless Desktop (alternate option)' => 'logicda',
  111.     'Logitech Cordless Desktop EX110' => 'logiex110',
  112.     'Logitech Cordless Desktop LX-300' => 'logiclx300',
  113.     'Logitech Cordless Desktop Navigator' => 'logicdn',
  114.     'Logitech Cordless Desktop Optical' => 'logicd_opt',
  115.     'Logitech Cordless Desktop Pro (alternate option 2)' => 'logicdpa2',
  116.     'Logitech Cordless Desktop iTouch' => 'logicd_it',
  117.     'Logitech Cordless Freedom/Desktop Navigator' => 'logicfn',
  118.     'Logitech G15 extra keys via G15daemon' => 'logitech_g15',
  119.     'Logitech Generic Keyboard' => 'logitech_base',
  120.     'Logitech Internet 350 Keyboard' => 'logii350',
  121.     'Logitech Internet Keyboard' => 'logiik',
  122.     'Logitech Internet Navigator Keyboard' => 'logicink',
  123.     'Logitech Media Elite Keyboard' => 'logimel',
  124.     'Logitech Ultra-X Cordless Media Desktop Keyboard' => 'logiultraxc',
  125.     'Logitech Ultra-X Keyboard' => 'logiultrax',
  126.     'Logitech diNovo Edge Keyboard' => 'logidinovoedge',
  127.     'Logitech diNovo Keyboard' => 'logidinovo',
  128.     'Logitech iTouch' => 'itouch',
  129.     'Logitech iTouch Cordless Keyboard (model Y-RB6)' => 'logiitc',
  130.     'Logitech iTouch Internet Navigator Keyboard SE' => 'logiinkse',
  131.     'Logitech iTouch Internet Navigator Keyboard SE (USB)' => 'logiinkseusb',
  132.     'MacBook/MacBook Pro' => 'macbook78',
  133.     'MacBook/MacBook Pro (Intl)' => 'macbook79',
  134.     'Macintosh' => 'macintosh',
  135.     'Macintosh Old' => 'macintosh_old',
  136.     'Memorex MX1998' => 'mx1998',
  137.     'Memorex MX2500 EZ-Access Keyboard' => 'mx2500',
  138.     'Memorex MX2750' => 'mx2750',
  139.     'Microsoft Comfort Curve Keyboard 2000' => 'microsoftccurve2k',
  140.     'Microsoft Internet Keyboard' => 'microsoftinet',
  141.     'Microsoft Internet Keyboard Pro, Swedish' => 'microsoftprose',
  142.     'Microsoft Natural' => 'microsoft',
  143.     'Microsoft Natural Keyboard Elite' => 'microsoftelite',
  144.     'Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro' => 'microsoftpro',
  145.     'Microsoft Natural Keyboard Pro OEM' => 'microsoftprooem',
  146.     'Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro' => 'microsoftprousb',
  147.     'Microsoft Natural Wireless Ergonomic Keyboard 4000' => 'microsoft4000',
  148.     'Microsoft Natural Wireless Ergonomic Keyboard 7000' => 'microsoft7000',
  149.     'Microsoft Office Keyboard' => 'microsoftoffice',
  150.     'Microsoft Wireless Multimedia Keyboard 1.0A' => 'microsoftmult',
  151.     'Northgate OmniKey 101' => 'omnikey101',
  152.     'OLPC' => 'olpc',
  153.     'Ortek MCK-800 MM/Internet keyboard' => 'oretec',
  154.     'PC-98xx Series' => 'pc98',
  155.     'Propeller Voyager (KTEZ-1000)' => 'propeller',
  156.     'QTronix Scorpius 98N+' => 'qtronix',
  157.     'SILVERCREST Multimedia Wireless Keyboard' => 'silvercrest',
  158.     'SK-1300' => 'sk1300',
  159.     'SK-2500' => 'sk2500',
  160.     'SK-6200' => 'sk6200',
  161.     'SK-7100' => 'sk7100',
  162.     'SVEN Ergonomic 2500' => 'sven',
  163.     'SVEN Slim 303' => 'sven303',
  164.     'Samsung SDM 4500P' => 'samsung4500',
  165.     'Samsung SDM 4510P' => 'samsung4510',
  166.     'Sanwa Supply SKB-KG3' => 'sanwaskbkg3',
  167.     'Sun Type 4' => 'sun4',
  168.     'Sun Type 5' => 'sun5',
  169.     'Sun Type 5/6' => 'sun6',
  170.     'Super Power Multimedia Keyboard' => 'sp_inet',
  171.     'Symplon PaceBook (tablet PC)' => 'symplon',
  172.     'Targa Visionary 811' => 'targa_v811',
  173.     'Toshiba Satellite S3000' => 'toshiba_s3000',
  174.     'Trust Direct Access Keyboard' => 'trustda',
  175.     'Trust Slimline' => 'trust_slimline',
  176.     'Trust Wireless Keyboard Classic' => 'trust',
  177.     'TypeMatrix EZ-Reach 2020' => 'tm2020',
  178.     'TypeMatrix EZ-Reach 2030 PS2' => 'tm2030PS2',
  179.     'TypeMatrix EZ-Reach 2030 USB' => 'tm2030USB',
  180.     'TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)' => 'tm2030USB-102',
  181.     'TypeMatrix EZ-Reach 2030 USB (106:JP mode)' => 'tm2030USB-106',
  182.     'Unitek KB-1925' => 'unitekkb1925',
  183.     'ViewSonic KU-306 Internet Keyboard' => 'vsonku306',
  184.     'Winbook Model XP5' => 'winbook',
  185.     'Yahoo! Internet Keyboard' => 'yahoo',
  186. );
  187.  
  188. %layouts = (
  189.     'Afghani' => 'af',
  190.     'Albanian' => 'al',
  191.     'Amharic' => 'et',
  192.     'Arabic' => 'ara',
  193.     'Arabic (Morocco)' => 'ma',
  194.     'Arabic (Syria)' => 'sy',
  195.     'Armenian' => 'am',
  196.     'Azerbaijani' => 'az',
  197.     'Bambara' => 'ml',
  198.     'Belarusian' => 'by',
  199.     'Belgian' => 'be',
  200.     'Bengali' => 'bd',
  201.     'Bosnian' => 'ba',
  202.     'Braille' => 'brai',
  203.     'Bulgarian' => 'bg',
  204.     'Burmese' => 'mm',
  205.     'Catalan' => 'ad',
  206.     'Chinese' => 'cn',
  207.     'Croatian' => 'hr',
  208.     'Czech' => 'cz',
  209.     'Danish' => 'dk',
  210.     'Dhivehi' => 'mv',
  211.     'Dutch' => 'nl',
  212.     'Dzongkha' => 'bt',
  213.     'English (Cameroon)' => 'cm',
  214.     'English (Ghana)' => 'gh',
  215.     'English (Nigeria)' => 'ng',
  216.     'English (South Africa)' => 'za',
  217.     'English (UK)' => 'gb',
  218.     'English (US)' => 'us',
  219.     'Esperanto' => 'epo',
  220.     'Estonian' => 'ee',
  221.     'Faroese' => 'fo',
  222.     'Filipino' => 'ph',
  223.     'Finnish' => 'fi',
  224.     'French' => 'fr',
  225.     'French (Canada)' => 'ca',
  226.     'French (Democratic Republic of the Congo)' => 'cd',
  227.     'French (Guinea)' => 'gn',
  228.     'Georgian' => 'ge',
  229.     'German' => 'de',
  230.     'German (Austria)' => 'at',
  231.     'German (Switzerland)' => 'ch',
  232.     'Greek' => 'gr',
  233.     'Hebrew' => 'il',
  234.     'Hungarian' => 'hu',
  235.     'Icelandic' => 'is',
  236.     'Indian' => 'in',
  237.     'Iraqi' => 'iq',
  238.     'Irish' => 'ie',
  239.     'Italian' => 'it',
  240.     'Japanese' => 'jp',
  241.     'Japanese (PC-98xx Series)' => 'nec_vndr/jp',
  242.     'Kazakh' => 'kz',
  243.     'Khmer (Cambodia)' => 'kh',
  244.     'Korean' => 'kr',
  245.     'Kyrgyz' => 'kg',
  246.     'Lao' => 'la',
  247.     'Latvian' => 'lv',
  248.     'Lithuanian' => 'lt',
  249.     'Macedonian' => 'mk',
  250.     'Maltese' => 'mt',
  251.     'Maori' => 'mao',
  252.     'Mongolian' => 'mn',
  253.     'Montenegrin' => 'me',
  254.     'Nepali' => 'np',
  255.     'Norwegian' => 'no',
  256.     'Persian' => 'ir',
  257.     'Polish' => 'pl',
  258.     'Portuguese' => 'pt',
  259.     'Portuguese (Brazil)' => 'br',
  260.     'Romanian' => 'ro',
  261.     'Russian' => 'ru',
  262.     'Serbian (Cyrillic)' => 'rs',
  263.     'Sinhala (phonetic)' => 'lk',
  264.     'Slovak' => 'sk',
  265.     'Slovenian' => 'si',
  266.     'Spanish' => 'es',
  267.     'Spanish (Latin American)' => 'latam',
  268.     'Swahili (Kenya)' => 'ke',
  269.     'Swahili (Tanzania)' => 'tz',
  270.     'Swedish' => 'se',
  271.     'Taiwanese' => 'tw',
  272.     'Tajik' => 'tj',
  273.     'Thai' => 'th',
  274.     'Tswana' => 'bw',
  275.     'Turkish' => 'tr',
  276.     'Turkmen' => 'tm',
  277.     'Ukrainian' => 'ua',
  278.     'Urdu (Pakistan)' => 'pk',
  279.     'Uzbek' => 'uz',
  280.     'Vietnamese' => 'vn',
  281.     'Wolof' => 'sn',
  282. );
  283.  
  284. %variants = (
  285.     'af' => {
  286.     'Pashto' => 'ps',
  287.     'Pashto (Afghanistan, OLPC)' => 'olpc-ps',
  288.     'Persian (Afghanistan, Dari OLPC)' => 'fa-olpc',
  289.     'Uzbek (Afghanistan)' => 'uz',
  290.     'Uzbek (Afghanistan, OLPC)' => 'uz-olpc',
  291.     },
  292.     'am' => {
  293.     'Armenian (alternative eastern)' => 'eastern-alt',
  294.     'Armenian (alternative phonetic)' => 'phonetic-alt',
  295.     'Armenian (eastern)' => 'eastern',
  296.     'Armenian (phonetic)' => 'phonetic',
  297.     'Armenian (western)' => 'western',
  298.     },
  299.     'ara' => {
  300.     'Arabic (Buckwalter)' => 'buckwalter',
  301.     'Arabic (azerty)' => 'azerty',
  302.     'Arabic (azerty/digits)' => 'azerty_digits',
  303.     'Arabic (digits)' => 'digits',
  304.     'Arabic (qwerty)' => 'qwerty',
  305.     'Arabic (qwerty/digits)' => 'qwerty_digits',
  306.     },
  307.     'at' => {
  308.     'German (Austria, Macintosh)' => 'mac',
  309.     'German (Austria, Sun dead keys)' => 'sundeadkeys',
  310.     'German (Austria, eliminate dead keys)' => 'nodeadkeys',
  311.     },
  312.     'az' => {
  313.     'Azerbaijani (Cyrillic)' => 'cyrillic',
  314.     },
  315.     'ba' => {
  316.     'Bosnian (US keyboard with Bosnian digraphs)' => 'unicodeus',
  317.     'Bosnian (US keyboard with Bosnian letters)' => 'us',
  318.     'Bosnian (use Bosnian digraphs)' => 'unicode',
  319.     'Bosnian (use guillemets for quotes)' => 'alternatequotes',
  320.     },
  321.     'bd' => {
  322.     'Bengali (Probhat)' => 'probhat',
  323.     },
  324.     'be' => {
  325.     'Belgian (ISO alternate)' => 'iso-alternate',
  326.     'Belgian (Sun dead keys)' => 'sundeadkeys',
  327.     'Belgian (Wang model 724 azerty)' => 'wang',
  328.     'Belgian (alternative)' => 'oss',
  329.     'Belgian (alternative, Sun dead keys)' => 'oss_sundeadkeys',
  330.     'Belgian (alternative, latin-9 only)' => 'oss_latin9',
  331.     'Belgian (eliminate dead keys)' => 'nodeadkeys',
  332.     },
  333.     'bg' => {
  334.     'Bulgarian (new phonetic)' => 'bas_phonetic',
  335.     'Bulgarian (traditional phonetic)' => 'phonetic',
  336.     },
  337.     'br' => {
  338.     'Portuguese (Brazil, Dvorak)' => 'dvorak',
  339.     'Portuguese (Brazil, eliminate dead keys)' => 'nodeadkeys',
  340.     'Portuguese (Brazil, nativo for Esperanto)' => 'nativo-epo',
  341.     'Portuguese (Brazil, nativo for USA keyboards)' => 'nativo-us',
  342.     'Portuguese (Brazil, nativo)' => 'nativo',
  343.     },
  344.     'brai' => {
  345.     'Braille (left hand)' => 'left_hand',
  346.     'Braille (right hand)' => 'right_hand',
  347.     },
  348.     'by' => {
  349.     'Belarusian (Latin)' => 'latin',
  350.     'Belarusian (legacy)' => 'legacy',
  351.     },
  352.     'ca' => {
  353.     'Canadian Multilingual' => 'multix',
  354.     'Canadian Multilingual (first part)' => 'multi',
  355.     'Canadian Multilingual (second part)' => 'multi-2gr',
  356.     'English (Canada)' => 'eng',
  357.     'French (Canada, Dvorak)' => 'fr-dvorak',
  358.     'French (Canada, legacy)' => 'fr-legacy',
  359.     'Inuktitut' => 'ike',
  360.     },
  361.     'ch' => {
  362.     'French (Switzerland)' => 'fr',
  363.     'French (Switzerland, Macintosh)' => 'fr_mac',
  364.     'French (Switzerland, Sun dead keys)' => 'fr_sundeadkeys',
  365.     'French (Switzerland, eliminate dead keys)' => 'fr_nodeadkeys',
  366.     'German (Switzerland, Macintosh)' => 'de_mac',
  367.     'German (Switzerland, Sun dead keys)' => 'de_sundeadkeys',
  368.     'German (Switzerland, eliminate dead keys)' => 'de_nodeadkeys',
  369.     'German (Switzerland, legacy)' => 'legacy',
  370.     },
  371.     'cm' => {
  372.     'Cameroon Multilingual (Dvorak)' => 'dvorak',
  373.     'Cameroon Multilingual (azerty)' => 'azerty',
  374.     'Cameroon Multilingual (qwerty)' => 'qwerty',
  375.     'French (Cameroon)' => 'french',
  376.     },
  377.     'cn' => {
  378.     'Tibetan' => 'tib',
  379.     'Tibetan (with ASCII numerals)' => 'tib_asciinum',
  380.     'Uyghur' => 'uig',
  381.     },
  382.     'cz' => {
  383.     'Czech (UCW layout, accented letters only)' => 'ucw',
  384.     'Czech (US Dvorak with CZ UCW support)' => 'dvorak-ucw',
  385.     'Czech (qwerty)' => 'qwerty',
  386.     'Czech (qwerty, extended Backslash)' => 'qwerty_bksl',
  387.     'Czech (with <\|> key)' => 'bksl',
  388.     },
  389.     'de' => {
  390.     'German (Dvorak)' => 'dvorak',
  391.     'German (Macintosh)' => 'mac',
  392.     'German (Macintosh, eliminate dead keys)' => 'mac_nodeadkeys',
  393.     'German (Neo 2)' => 'neo',
  394.     'German (Sun dead keys)' => 'sundeadkeys',
  395.     'German (dead acute)' => 'deadacute',
  396.     'German (dead grave acute)' => 'deadgraveacute',
  397.     'German (eliminate dead keys)' => 'nodeadkeys',
  398.     'Lower Sorbian' => 'dsb',
  399.     'Lower Sorbian (qwertz)' => 'dsb_qwertz',
  400.     'Romanian (Germany)' => 'ro',
  401.     'Romanian (Germany, eliminate dead keys)' => 'ro_nodeadkeys',
  402.     'Russian (Germany, phonetic)' => 'ru',
  403.     },
  404.     'dk' => {
  405.     'Danish (Dvorak)' => 'dvorak',
  406.     'Danish (Macintosh)' => 'mac',
  407.     'Danish (Macintosh, eliminate dead keys)' => 'mac_nodeadkeys',
  408.     'Danish (eliminate dead keys)' => 'nodeadkeys',
  409.     },
  410.     'ee' => {
  411.     'Estonian (Dvorak)' => 'dvorak',
  412.     'Estonian (US keyboard with Estonian letters)' => 'us',
  413.     'Estonian (eliminate dead keys)' => 'nodeadkeys',
  414.     },
  415.     'epo' => {
  416.     'Esperanto (displaced semicolon and quote, obsolete)' => 'legacy',
  417.     },
  418.     'es' => {
  419.     'Asturian (Spain, with bottom-dot H and bottom-dot L)' => 'ast',
  420.     'Catalan (Spain, with middle-dot L)' => 'cat',
  421.     'Spanish (Dvorak)' => 'dvorak',
  422.     'Spanish (Macintosh)' => 'mac',
  423.     'Spanish (Sun dead keys)' => 'sundeadkeys',
  424.     'Spanish (eliminate dead keys)' => 'nodeadkeys',
  425.     'Spanish (include dead tilde)' => 'deadtilde',
  426.     },
  427.     'fi' => {
  428.     'Finnish (Macintosh)' => 'mac',
  429.     'Finnish (classic)' => 'classic',
  430.     'Finnish (classic, eliminate dead keys)' => 'nodeadkeys',
  431.     'Northern Saami (Finland)' => 'smi',
  432.     },
  433.     'fo' => {
  434.     'Faroese (eliminate dead keys)' => 'nodeadkeys',
  435.     },
  436.     'fr' => {
  437.     'French (Bepo, ergonomic, Dvorak way)' => 'bepo',
  438.     'French (Bepo, ergonomic, Dvorak way, latin-9 only)' => 'bepo_latin9',
  439.     'French (Breton)' => 'bre',
  440.     'French (Dvorak)' => 'dvorak',
  441.     'French (Macintosh)' => 'mac',
  442.     'French (Sun dead keys)' => 'sundeadkeys',
  443.     'French (alternative)' => 'oss',
  444.     'French (alternative, Sun dead keys)' => 'oss_sundeadkeys',
  445.     'French (alternative, eliminate dead keys)' => 'oss_nodeadkeys',
  446.     'French (alternative, latin-9 only)' => 'oss_latin9',
  447.     'French (eliminate dead keys)' => 'nodeadkeys',
  448.     'French (legacy, alternative)' => 'latin9',
  449.     'French (legacy, alternative, Sun dead keys)' => 'latin9_sundeadkeys',
  450.     'French (legacy, alternative, eliminate dead keys)' => 'latin9_nodeadkeys',
  451.     'Georgian (France, AZERTY Tskapo)' => 'geo',
  452.     'Occitan' => 'oci',
  453.     },
  454.     'gb' => {
  455.     'English (UK, Colemak)' => 'colemak',
  456.     'English (UK, Dvorak with UK punctuation)' => 'dvorakukp',
  457.     'English (UK, Dvorak)' => 'dvorak',
  458.     'English (UK, Macintosh international)' => 'mac_intl',
  459.     'English (UK, Macintosh)' => 'mac',
  460.     'English (UK, extended WinKeys)' => 'extd',
  461.     'English (UK, international with dead keys)' => 'intl',
  462.     },
  463.     'ge' => {
  464.     'Georgian (MESS)' => 'mess',
  465.     'Georgian (ergonomic)' => 'ergonomic',
  466.     'Ossetian (Georgia)' => 'os',
  467.     'Russian (Georgia)' => 'ru',
  468.     },
  469.     'gh' => {
  470.     'Akan' => 'akan',
  471.     'Avatime' => 'avn',
  472.     'English (Ghana, GILLBT)' => 'gillbt',
  473.     'English (Ghana, multilingual)' => 'generic',
  474.     'Ewe' => 'ewe',
  475.     'Fula' => 'fula',
  476.     'Ga' => 'ga',
  477.     'Hausa' => 'hausa',
  478.     },
  479.     'gr' => {
  480.     'Greek (eliminate dead keys)' => 'nodeadkeys',
  481.     'Greek (extended)' => 'extended',
  482.     'Greek (polytonic)' => 'polytonic',
  483.     'Greek (simple)' => 'simple',
  484.     },
  485.     'hr' => {
  486.     'Croatian (US keyboard with Croatian digraphs)' => 'unicodeus',
  487.     'Croatian (US keyboard with Croatian letters)' => 'us',
  488.     'Croatian (use Croatian digraphs)' => 'unicode',
  489.     'Croatian (use guillemets for quotes)' => 'alternatequotes',
  490.     },
  491.     'hu' => {
  492.     'Hungarian (101/qwerty/comma/dead keys)' => '101_qwerty_comma_dead',
  493.     'Hungarian (101/qwerty/comma/eliminate dead keys)' => '101_qwerty_comma_nodead',
  494.     'Hungarian (101/qwerty/dot/dead keys)' => '101_qwerty_dot_dead',
  495.     'Hungarian (101/qwerty/dot/eliminate dead keys)' => '101_qwerty_dot_nodead',
  496.     'Hungarian (101/qwertz/comma/dead keys)' => '101_qwertz_comma_dead',
  497.     'Hungarian (101/qwertz/comma/eliminate dead keys)' => '101_qwertz_comma_nodead',
  498.     'Hungarian (101/qwertz/dot/dead keys)' => '101_qwertz_dot_dead',
  499.     'Hungarian (101/qwertz/dot/eliminate dead keys)' => '101_qwertz_dot_nodead',
  500.     'Hungarian (102/qwerty/comma/dead keys)' => '102_qwerty_comma_dead',
  501.     'Hungarian (102/qwerty/comma/eliminate dead keys)' => '102_qwerty_comma_nodead',
  502.     'Hungarian (102/qwerty/dot/dead keys)' => '102_qwerty_dot_dead',
  503.     'Hungarian (102/qwerty/dot/eliminate dead keys)' => '102_qwerty_dot_nodead',
  504.     'Hungarian (102/qwertz/comma/dead keys)' => '102_qwertz_comma_dead',
  505.     'Hungarian (102/qwertz/comma/eliminate dead keys)' => '102_qwertz_comma_nodead',
  506.     'Hungarian (102/qwertz/dot/dead keys)' => '102_qwertz_dot_dead',
  507.     'Hungarian (102/qwertz/dot/eliminate dead keys)' => '102_qwertz_dot_nodead',
  508.     'Hungarian (eliminate dead keys)' => 'nodeadkeys',
  509.     'Hungarian (qwerty)' => 'qwerty',
  510.     'Hungarian (standard)' => 'standard',
  511.     },
  512.     'ie' => {
  513.     'CloGaelach' => 'CloGaelach',
  514.     'Irish (UnicodeExpert)' => 'UnicodeExpert',
  515.     'Ogham' => 'ogam',
  516.     'Ogham (IS434)' => 'ogam_is434',
  517.     },
  518.     'il' => {
  519.     'Hebrew (Biblical, Tiro)' => 'biblical',
  520.     'Hebrew (lyx)' => 'lyx',
  521.     'Hebrew (phonetic)' => 'phonetic',
  522.     },
  523.     'in' => {
  524.     'Bengali (India)' => 'ben',
  525.     'Bengali (India, Baishakhi Inscript)' => 'ben_inscript',
  526.     'Bengali (India, Baishakhi)' => 'ben_baishakhi',
  527.     'Bengali (India, Bornona)' => 'ben_bornona',
  528.     'Bengali (India, Probhat)' => 'ben_probhat',
  529.     'Bengali (India, Uni Gitanjali)' => 'ben_gitanjali',
  530.     'English (India, with RupeeSign)' => 'eng',
  531.     'Gujarati' => 'guj',
  532.     'Hindi (Bolnagri)' => 'bolnagri',
  533.     'Hindi (Wx)' => 'hin-wx',
  534.     'Kannada' => 'kan',
  535.     'Malayalam' => 'mal',
  536.     'Malayalam (Lalitha)' => 'mal_lalitha',
  537.     'Malayalam (enhanced Inscript with Rupee Sign)' => 'mal_enhanced',
  538.     'Oriya' => 'ori',
  539.     'Punjabi (Gurmukhi Jhelum)' => 'jhelum',
  540.     'Punjabi (Gurmukhi)' => 'guru',
  541.     'Tamil' => 'tam',
  542.     'Tamil (TAB typewriter)' => 'tam_TAB',
  543.     'Tamil (TSCII typewriter)' => 'tam_TSCII',
  544.     'Tamil (Unicode)' => 'tam_unicode',
  545.     'Tamil (keyboard with numerals)' => 'tam_keyboard_with_numerals',
  546.     'Telugu' => 'tel',
  547.     'Urdu (WinKeys)' => 'urd-winkeys',
  548.     'Urdu (alternative phonetic)' => 'urd-phonetic3',
  549.     'Urdu (phonetic)' => 'urd-phonetic',
  550.     },
  551.     'iq' => {
  552.     'Kurdish (Iraq, Arabic-Latin)' => 'ku_ara',
  553.     'Kurdish (Iraq, F)' => 'ku_f',
  554.     'Kurdish (Iraq, Latin Alt-Q)' => 'ku_alt',
  555.     'Kurdish (Iraq, Latin Q)' => 'ku',
  556.     },
  557.     'ir' => {
  558.     'Kurdish (Iran, Arabic-Latin)' => 'ku_ara',
  559.     'Kurdish (Iran, F)' => 'ku_f',
  560.     'Kurdish (Iran, Latin Alt-Q)' => 'ku_alt',
  561.     'Kurdish (Iran, Latin Q)' => 'ku',
  562.     'Persian (with Persian Keypad)' => 'pes_keypad',
  563.     },
  564.     'is' => {
  565.     'Icelandic (Dvorak)' => 'dvorak',
  566.     'Icelandic (Macintosh)' => 'mac',
  567.     'Icelandic (Sun dead keys)' => 'Sundeadkeys',
  568.     'Icelandic (eliminate dead keys)' => 'nodeadkeys',
  569.     },
  570.     'it' => {
  571.     'Georgian (Italy)' => 'geo',
  572.     'Italian (Macintosh)' => 'mac',
  573.     'Italian (US keyboard with Italian letters)' => 'us',
  574.     'Italian (eliminate dead keys)' => 'nodeadkeys',
  575.     },
  576.     'jp' => {
  577.     'Japanese (Kana 86)' => 'kana86',
  578.     'Japanese (Kana)' => 'kana',
  579.     'Japanese (Macintosh)' => 'mac',
  580.     'Japanese (OADG 109A)' => 'OADG109A',
  581.     },
  582.     'ke' => {
  583.     'Kikuyu' => 'kik',
  584.     },
  585.     'kg' => {
  586.     'Kyrgyz (phonetic)' => 'phonetic',
  587.     },
  588.     'kr' => {
  589.     'Korean (101/104 key compatible)' => 'kr104',
  590.     },
  591.     'kz' => {
  592.     'Kazakh (with Russian)' => 'kazrus',
  593.     'Russian (Kazakhstan, with Kazakh)' => 'ruskaz',
  594.     },
  595.     'la' => {
  596.     'Lao (STEA proposed standard layout)' => 'stea',
  597.     },
  598.     'latam' => {
  599.     'Spanish (Latin American, Sun dead keys)' => 'sundeadkeys',
  600.     'Spanish (Latin American, eliminate dead keys)' => 'nodeadkeys',
  601.     'Spanish (Latin American, include dead tilde)' => 'deadtilde',
  602.     },
  603.     'lk' => {
  604.     'Tamil (Sri Lanka, TAB Typewriter)' => 'tam_TAB',
  605.     'Tamil (Sri Lanka, Unicode)' => 'tam_unicode',
  606.     },
  607.     'lt' => {
  608.     'Lithuanian (IBM LST 1205-92)' => 'ibm',
  609.     'Lithuanian (LEKP)' => 'lekp',
  610.     'Lithuanian (LEKPa)' => 'lekpa',
  611.     'Lithuanian (US keyboard with Lithuanian letters)' => 'us',
  612.     'Lithuanian (standard)' => 'std',
  613.     },
  614.     'lv' => {
  615.     'Latvian (F variant)' => 'fkey',
  616.     'Latvian (adapted)' => 'adapted',
  617.     'Latvian (apostrophe variant)' => 'apostrophe',
  618.     'Latvian (ergonomic, ┼¬GJRMV)' => 'ergonomic',
  619.     'Latvian (modern)' => 'modern',
  620.     'Latvian (tilde variant)' => 'tilde',
  621.     },
  622.     'ma' => {
  623.     'Berber (Morocco, Tifinagh alternative phonetic)' => 'tifinagh-alt-phonetic',
  624.     'Berber (Morocco, Tifinagh alternative)' => 'tifinagh-alt',
  625.     'Berber (Morocco, Tifinagh extended phonetic)' => 'tifinagh-extended-phonetic',
  626.     'Berber (Morocco, Tifinagh extended)' => 'tifinagh-extended',
  627.     'Berber (Morocco, Tifinagh phonetic)' => 'tifinagh-phonetic',
  628.     'Berber (Morocco, Tifinagh)' => 'tifinagh',
  629.     'French (Morocco)' => 'french',
  630.     },
  631.     'me' => {
  632.     'Montenegrin (Cyrillic with guillemets)' => 'cyrillicalternatequotes',
  633.     'Montenegrin (Cyrillic)' => 'cyrillic',
  634.     'Montenegrin (Cyrillic, Z and ZHE swapped)' => 'cyrillicyz',
  635.     'Montenegrin (Latin Unicode qwerty)' => 'latinunicodeyz',
  636.     'Montenegrin (Latin Unicode)' => 'latinunicode',
  637.     'Montenegrin (Latin qwerty)' => 'latinyz',
  638.     'Montenegrin (Latin with guillemets)' => 'latinalternatequotes',
  639.     },
  640.     'mk' => {
  641.     'Macedonian (eliminate dead keys)' => 'nodeadkeys',
  642.     },
  643.     'ml' => {
  644.     'English (Mali, US Macintosh)' => 'us-mac',
  645.     'English (Mali, US international)' => 'us-intl',
  646.     'French (Mali, alternative)' => 'fr-oss',
  647.     },
  648.     'mt' => {
  649.     'Maltese (with US layout)' => 'us',
  650.     },
  651.     'ng' => {
  652.     'Hausa' => 'hausa',
  653.     'Igbo' => 'igbo',
  654.     'Yoruba' => 'yoruba',
  655.     },
  656.     'nl' => {
  657.     'Dutch (Macintosh)' => 'mac',
  658.     'Dutch (Sun dead keys)' => 'sundeadkeys',
  659.     'Dutch (standard)' => 'std',
  660.     },
  661.     'no' => {
  662.     'Northern Saami (Norway)' => 'smi',
  663.     'Northern Saami (Norway, eliminate dead keys)' => 'smi_nodeadkeys',
  664.     'Norwegian (Dvorak)' => 'dvorak',
  665.     'Norwegian (Macintosh)' => 'mac',
  666.     'Norwegian (Macintosh, eliminate dead keys)' => 'mac_nodeadkeys',
  667.     'Norwegian (eliminate dead keys)' => 'nodeadkeys',
  668.     },
  669.     'ph' => {
  670.     'Filipino (Capewell-Dvorak Baybayin)' => 'capewell-dvorak-bay',
  671.     'Filipino (Capewell-Dvorak Latin)' => 'capewell-dvorak',
  672.     'Filipino (Capewell-QWERF 2006 Baybayin)' => 'capewell-qwerf2k6-bay',
  673.     'Filipino (Capewell-QWERF 2006 Latin)' => 'capewell-qwerf2k6',
  674.     'Filipino (Colemak Baybayin)' => 'colemak-bay',
  675.     'Filipino (Colemak Latin)' => 'colemak',
  676.     'Filipino (Dvorak Baybayin)' => 'dvorak-bay',
  677.     'Filipino (Dvorak Latin)' => 'dvorak',
  678.     'Filipino (QWERTY Baybayin)' => 'qwerty-bay',
  679.     },
  680.     'pk' => {
  681.     'Arabic (Pakistan)' => 'ara',
  682.     'Sindhi' => 'snd',
  683.     'Urdu (Pakistan, CRULP)' => 'urd-crulp',
  684.     'Urdu (Pakistan, NLA)' => 'urd-nla',
  685.     },
  686.     'pl' => {
  687.     'Kashubian' => 'csb',
  688.     'Polish (Dvorak)' => 'dvorak',
  689.     'Polish (Dvorak, Polish quotes on key 1)' => 'dvorak_altquotes',
  690.     'Polish (Dvorak, Polish quotes on quotemark key)' => 'dvorak_quotes',
  691.     'Polish (programmer Dvorak)' => 'dvp',
  692.     'Polish (qwertz)' => 'qwertz',
  693.     'Russian (Poland, phonetic Dvorak)' => 'ru_phonetic_dvorak',
  694.     },
  695.     'pt' => {
  696.     'Esperanto (Portugal, Nativo)' => 'nativo-epo',
  697.     'Portuguese (Macintosh)' => 'mac',
  698.     'Portuguese (Macintosh, Sun dead keys)' => 'mac_sundeadkeys',
  699.     'Portuguese (Macintosh, eliminate dead keys)' => 'mac_nodeadkeys',
  700.     'Portuguese (Nativo for USA keyboards)' => 'nativo-us',
  701.     'Portuguese (Nativo)' => 'nativo',
  702.     'Portuguese (Sun dead keys)' => 'sundeadkeys',
  703.     'Portuguese (eliminate dead keys)' => 'nodeadkeys',
  704.     },
  705.     'ro' => {
  706.     'Romanian (WinKeys)' => 'winkeys',
  707.     'Romanian (cedilla)' => 'cedilla',
  708.     'Romanian (standard cedilla)' => 'std_cedilla',
  709.     'Romanian (standard)' => 'std',
  710.     },
  711.     'rs' => {
  712.     'Pannonian Rusyn (homophonic)' => 'rue',
  713.     'Serbian (Cyrillic with guillemets)' => 'alternatequotes',
  714.     'Serbian (Cyrillic, Z and ZHE swapped)' => 'yz',
  715.     'Serbian (Latin Unicode qwerty)' => 'latinunicodeyz',
  716.     'Serbian (Latin Unicode)' => 'latinunicode',
  717.     'Serbian (Latin qwerty)' => 'latinyz',
  718.     'Serbian (Latin with guillemets)' => 'latinalternatequotes',
  719.     'Serbian (Latin)' => 'latin',
  720.     },
  721.     'ru' => {
  722.     'Bashkirian' => 'bak',
  723.     'Chuvash' => 'cv',
  724.     'Chuvash (Latin)' => 'cv_latin',
  725.     'Kalmyk' => 'xal',
  726.     'Komi' => 'kom',
  727.     'Mari' => 'chm',
  728.     'Ossetian (WinKeys)' => 'os_winkeys',
  729.     'Ossetian (legacy)' => 'os_legacy',
  730.     'Russian (DOS)' => 'dos',
  731.     'Russian (legacy)' => 'legacy',
  732.     'Russian (phonetic WinKeys)' => 'phonetic_winkeys',
  733.     'Russian (phonetic)' => 'phonetic',
  734.     'Russian (typewriter)' => 'typewriter',
  735.     'Russian (typewriter, legacy)' => 'typewriter-legacy',
  736.     'Serbian (Russia)' => 'srp',
  737.     'Tatar' => 'tt',
  738.     'Udmurt' => 'udm',
  739.     'Yakut' => 'sah',
  740.     },
  741.     'se' => {
  742.     'Northern Saami (Sweden)' => 'smi',
  743.     'Russian (Sweden, phonetic)' => 'rus',
  744.     'Russian (Sweden, phonetic, eliminate dead keys)' => 'rus_nodeadkeys',
  745.     'Swedish (Dvorak)' => 'dvorak',
  746.     'Swedish (Macintosh)' => 'mac',
  747.     'Swedish (Svdvorak)' => 'svdvorak',
  748.     'Swedish (eliminate dead keys)' => 'nodeadkeys',
  749.     'Swedish Sign Language' => 'swl',
  750.     },
  751.     'si' => {
  752.     'Slovenian (US keyboard with Slovenian letters)' => 'us',
  753.     'Slovenian (use guillemets for quotes)' => 'alternatequotes',
  754.     },
  755.     'sk' => {
  756.     'Slovak (extended Backslash)' => 'bksl',
  757.     'Slovak (qwerty)' => 'qwerty',
  758.     'Slovak (qwerty, extended Backslash)' => 'qwerty_bksl',
  759.     },
  760.     'sy' => {
  761.     'Kurdish (Syria, F)' => 'ku_f',
  762.     'Kurdish (Syria, Latin Alt-Q)' => 'ku_alt',
  763.     'Kurdish (Syria, Latin Q)' => 'ku',
  764.     'Syriac' => 'syc',
  765.     'Syriac (phonetic)' => 'syc_phonetic',
  766.     },
  767.     'th' => {
  768.     'Thai (Pattachote)' => 'pat',
  769.     'Thai (TIS-820.2538)' => 'tis',
  770.     },
  771.     'tj' => {
  772.     'Tajik (legacy)' => 'legacy',
  773.     },
  774.     'tm' => {
  775.     'Turkmen (Alt-Q)' => 'alt',
  776.     },
  777.     'tr' => {
  778.     'Crimean Tatar (Turkish Alt-Q)' => 'crh_alt',
  779.     'Crimean Tatar (Turkish F)' => 'crh_f',
  780.     'Crimean Tatar (Turkish Q)' => 'crh',
  781.     'Kurdish (Turkey, F)' => 'ku_f',
  782.     'Kurdish (Turkey, Latin Alt-Q)' => 'ku_alt',
  783.     'Kurdish (Turkey, Latin Q)' => 'ku',
  784.     'Turkish (Alt-Q)' => 'alt',
  785.     'Turkish (F)' => 'f',
  786.     'Turkish (Sun dead keys)' => 'sundeadkeys',
  787.     'Turkish (international with dead keys)' => 'intl',
  788.     },
  789.     'tw' => {
  790.     'Saisiyat (Taiwan)' => 'saisiyat',
  791.     'Taiwanese (indigenous)' => 'indigenous',
  792.     },
  793.     'ua' => {
  794.     'Russian (Ukraine, standard RSTU)' => 'rstu_ru',
  795.     'Ukrainian (WinKeys)' => 'winkeys',
  796.     'Ukrainian (homophonic)' => 'homophonic',
  797.     'Ukrainian (legacy)' => 'legacy',
  798.     'Ukrainian (phonetic)' => 'phonetic',
  799.     'Ukrainian (standard RSTU)' => 'rstu',
  800.     'Ukrainian (typewriter)' => 'typewriter',
  801.     },
  802.     'us' => {
  803.     'Cherokee' => 'chr',
  804.     'English (Colemak)' => 'colemak',
  805.     'English (Dvorak alternative international no dead keys)' => 'dvorak-alt-intl',
  806.     'English (Dvorak international with dead keys)' => 'dvorak-intl',
  807.     'English (Dvorak)' => 'dvorak',
  808.     'English (Macintosh)' => 'mac',
  809.     'English (US, alternative international)' => 'alt-intl',
  810.     'English (US, international with dead keys)' => 'intl',
  811.     'English (US, with euro on 5)' => 'euro',
  812.     'English (classic Dvorak)' => 'dvorak-classic',
  813.     'English (international AltGr dead keys)' => 'altgr-intl',
  814.     'English (layout toggle on multiply/divide key)' => 'olpc2',
  815.     'English (left handed Dvorak)' => 'dvorak-l',
  816.     'English (programmer Dvorak)' => 'dvp',
  817.     'English (right handed Dvorak)' => 'dvorak-r',
  818.     'Russian (US, phonetic)' => 'rus',
  819.     'Serbo-Croatian (US)' => 'hbs',
  820.     },
  821.     'uz' => {
  822.     'Uzbek (Latin)' => 'latin',
  823.     },
  824. );
  825.  
  826. 1;
  827.